#pragma once
#include <vector>
#include <string>
#include <Aria.h>
#include "MyMarker.h"

// typedef to save typing for the following object
typedef std::vector<std::vector<std::string>> csvVector;

class RobotUtils
{
public:
	RobotUtils(void);
	~RobotUtils(void);

	static void readCSV(const std::string &fileName, csvVector &output);
	static void writeCSV(csvVector &input, const std::string &fileName);

	/**	Legge da file posizione ed orientazione iniziali
	*	del sistema robot rispetto al sistema globale
	*	
	*	@param initialPose i valori letti sono inseriti qui
	*/
	static void readInitialPose(ArPose &initialPose);

	/**	Legge da file l'intervallo di correzione della posizione del robot
	*	
	*	@param CORRECTION_INTERVAL il valore letto e' inserito qui
	*/
	static void readCorrectionInterval(int &CORRECTION_INTERVAL);

	/**	Legge da file l inclinazione della telecamera
	*	
	*	@param theta il valore letto e' inserito qui
	*/
	static void readTheta(int &theta);
	
	/**	Legge da file una sequenza di obiettivi (punti sul piano rispetto al sistema globale)
	*	
	*	@param goals i valori letti sono inseriti qui
	*/
	static void readGoals(std::vector<ArPose> &goals);

	/**	Legge da file una sequenza di marker (punti sul piano rispetto al sistema globale)
	*	
	*	@param markers i valori letti sono inseriti qui
	*/
	static void readMarkers(std::vector<MyMarker> &markers);
};
